package br.com.felix.dbm;

import br.com.felix.dbm.felixdb.FelixColumnClassCodes;
import br.com.felix.dbm.felixdb.FelixDatabaseNamingRules;
import br.com.felix.dbm.naming.ColumnClassCodes;
import br.com.felix.dbm.naming.DatabaseNamingRules;
import br.com.felix.dbm.sql.SQLBuilder;
import br.com.felix.dbm.sql.oracle.OracleSQLBuilder;

/**
 * Factory for the objects that are being utilized globally, and that affect the
 * modeling process.
 * 
 * @TODO: Refactor implementation. When more objects exist, it will be needed to
 *        choose among them. Besides, when more than one file is open, they may
 *        use different objects.
 * */
public class DatabaseObjectsFactory {

	private static final DatabaseNamingRules databaseNamingRules = new FelixDatabaseNamingRules();
	private static final ColumnClassCodes columnClassCodes = new FelixColumnClassCodes();
	


	/**
	 * Gets the DatabaseNamingRules that is being used.
	 * */
	public static DatabaseNamingRules getDatabaseNamingRules() {
		return databaseNamingRules;
	}



	/**
	 * Gets the SQLBuilder that is being used.
	 * */
	public static SQLBuilder getSQLBuilder() {
		return new OracleSQLBuilder();
	}



	/**
	 * Gets the ColumnClassCodes that are being used.
	 * */
	public static ColumnClassCodes getColumnClassCodes() {
		return columnClassCodes;
	}

}
